Вам предлагается
очень простая задача: на какую цифру начинается число nn?
Вход. Состоит из нескольких тестов. Каждый тест расположен в
отдельной строке и содержит единственное число n (1 ≤ n ≤ 109).
Выход. Для каждого теста выведите в отдельной
строке первую цифру искомого результата.
Пример
входа |
Пример
выхода |
3 4 |
2 2 |
математика
Количество цифр числа a
равно . Следовательно число nn
содержит len = десятичных цифр. Рассмотрим
число A = = = . Очевидно, что 1 ≤ A < 10. При этом целая часть
числа A равна первой цифре числа nn.
Вычисляем десятичный логарифм числа A. Он равен ost = nlgn + 1 – len. Тогда первая цифра числа nn равна .
Пример
Пусть n = 4. Тогда
44 = 256, len = = 3. Число А равно = = = 2.56.
Основной цикл программы.
while(scanf("%lld",&n)
== 1)
{
lgg = n * log10((double)n);
Значение len
равно количеству цифр в числе nn.
len = (long long)(lgg + 1e-7) + 1;
ost = lgg + 1 - len;
res = (long long)(pow(10.0,ost) + 1e-7);
printf("%lld\n",res);
}
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
while(con.hasNextLong())
{
long n = con.nextLong();
double lgg = n * Math.log10(n);
long len = (long)(lgg) + 1; // number of digits in n^n
double ost = lgg + 1 - len;
long res = (long)(Math.pow(10.0,ost));
System.out.println(res);
}
}
}